﻿



using System; 
using System.Collections;
using System.Collections.Generic ;
using System.Runtime.Serialization;

namespace ufida.u9.ait.openapi
{
	/// <summary>
	/// 报销单AITDTO DTO :REST自定义的数据传输类型 
	/// 
	/// </summary>
	[DataContract(Namespace = "ufida.u9.ait.openapi")]
	[Serializable]
	public partial class ReimburseBillAITDTOData  
	{
		/// <summary>
		/// Default Constructor
		/// </summary>
		public ReimburseBillAITDTOData()
		{
			initData();
		}
		private void initData()
		{
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

			//调用默认值初始化服务进行配置方式初始化
			UFSoft.UBF.Service.DTOService.InitConfigDefault(this);
		}
		[System.Runtime.Serialization.OnDeserializing]
		internal void OnDeserializing(System.Runtime.Serialization.StreamingContext context)
		{
			 initData();
		}
		#region Do SerializeKey -ForDTODataType
		//只为处理集合型EntityKey。原因集合型EntityKey由于使用臫的集合对象，无法实现数据共享.-UBF专用.
		public void DoSerializeKeyList(IDictionary dict)
		{
			if (dict == null ) dict = new Hashtable() ;
			if (dict[this] != null)
				return ;
			dict[this] = this;
	        			if (this.ReimburseBillDetails!=null)
			{
				foreach(ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData objdata in this.ReimburseBillDetails)
				{
					objdata.DoSerializeKeyList(dict);
				}
			}
				        			if (this.LoanBills!=null)
			{
				foreach(ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData objdata in this.LoanBills)
				{
					objdata.DoSerializeKeyList(dict);
				}
			}
				        			if (this.DescFlexField != null) 
			{
				this.DescFlexField.DoSerializeKeyList(dict);
			}
	        			if (this.ReimBurseDept != null) 
			{
				this.ReimBurseDept.DoSerializeKeyList(dict);
			}
	        	        			if (this.ReimBurseBy != null) 
			{
				this.ReimBurseBy.DoSerializeKeyList(dict);
			}
	        			if (this.Org != null) 
			{
				this.Org.DoSerializeKeyList(dict);
			}
	        			if (this.FC != null) 
			{
				this.FC.DoSerializeKeyList(dict);
			}
	        	        			if (this.ExpensePayProject != null) 
			{
				this.ExpensePayProject.DoSerializeKeyList(dict);
			}
	        			if (this.ExpensePayDept != null) 
			{
				this.ExpensePayDept.DoSerializeKeyList(dict);
			}
	        			if (this.ExpensePayBy != null) 
			{
				this.ExpensePayBy.DoSerializeKeyList(dict);
			}
	        			if (this.EmployeeBankCardType != null) 
			{
				this.EmployeeBankCardType.DoSerializeKeyList(dict);
			}
	        			if (this.EmployeeBankCardNo != null) 
			{
				this.EmployeeBankCardNo.DoSerializeKeyList(dict);
			}
	        			if (this.DocumentType != null) 
			{
				this.DocumentType.DoSerializeKeyList(dict);
			}
	        			if (this.Currency != null) 
			{
				this.Currency.DoSerializeKeyList(dict);
			}
	        	        			if (this.ReimBurseByOrg != null) 
			{
				this.ReimBurseByOrg.DoSerializeKeyList(dict);
			}
	        			if (this.ExpensePayOrg != null) 
			{
				this.ExpensePayOrg.DoSerializeKeyList(dict);
			}
	        			if (this.ExpensePayAuditOrg != null) 
			{
				this.ExpensePayAuditOrg.DoSerializeKeyList(dict);
			}

		}
		#endregion 
		/// <summary>
		/// Constructor Full Argument
		/// </summary>
		public ReimburseBillAITDTOData(  List<ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData> reimburseBillDetails  , List<ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData> loanBills  , ufida.u9.ait.openapi.CopyOfDescFlexSegmentsData descFlexField  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData reimBurseDept  , System.String reimburseDate  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData reimBurseBy  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData org  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData fC  , System.String expenseUse  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData expensePayProject  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData expensePayDept  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData expensePayBy  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData employeeBankCardType  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData employeeBankCardNo  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData documentType  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData currency  , System.String docNo  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData reimBurseByOrg  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData expensePayOrg  , ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData expensePayAuditOrg  )
		{
			initData();
			this.ReimburseBillDetails = reimburseBillDetails;
			this.LoanBills = loanBills;
			this.DescFlexField = descFlexField;
			this.ReimBurseDept = reimBurseDept;
			this.ReimburseDate = reimburseDate;
			this.ReimBurseBy = reimBurseBy;
			this.Org = org;
			this.FC = fC;
			this.ExpenseUse = expenseUse;
			this.ExpensePayProject = expensePayProject;
			this.ExpensePayDept = expensePayDept;
			this.ExpensePayBy = expensePayBy;
			this.EmployeeBankCardType = employeeBankCardType;
			this.EmployeeBankCardNo = employeeBankCardNo;
			this.DocumentType = documentType;
			this.Currency = currency;
			this.DocNo = docNo;
			this.ReimBurseByOrg = reimBurseByOrg;
			this.ExpensePayOrg = expensePayOrg;
			this.ExpensePayAuditOrg = expensePayAuditOrg;
		}
		#region System Fields 
		//--系统字段,目前没有.EntityData上有相应的字段,用于保存相关的实体状态信息,DTO上没有状态信息.	
		#endregion
		
		#region DTO Properties 
	
		

		/// <summary>
		/// 报销单表体
		/// 报销单AITDTO.Misc.报销单表体
		/// </summary>
		private List<ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData> m_reimburseBillDetails ;
		[DataMember(IsRequired=false)]
		public List<ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData> ReimburseBillDetails
		{
			get	
			{	
				if (m_reimburseBillDetails == null )
				{
					List<ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData> n_m_list = new List<ufida.u9.ait.openapi.ReimburseBillDetailsAITDTOData>() ;
					m_reimburseBillDetails = n_m_list ;
				}
				return m_reimburseBillDetails ;
			}
			set	
			{	
				m_reimburseBillDetails = value ;	
			}
		}
			
		

		/// <summary>
		/// 借款单子表
		/// 报销单AITDTO.Misc.借款单子表
		/// </summary>
		private List<ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData> m_loanBills ;
		[DataMember(IsRequired=false)]
		public List<ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData> LoanBills
		{
			get	
			{	
				if (m_loanBills == null )
				{
					List<ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData> n_m_list = new List<ufida.u9.ait.openapi.ReimburseApplyLoanBillAITDTOData>() ;
					m_loanBills = n_m_list ;
				}
				return m_loanBills ;
			}
			set	
			{	
				m_loanBills = value ;	
			}
		}
			
		

		/// <summary>
		/// 实体扩展字段
		/// 报销单AITDTO.Misc.实体扩展字段
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfDescFlexSegmentsData m_descFlexField ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfDescFlexSegmentsData DescFlexField
		{
			get	
			{	
				return m_descFlexField ;
			}
			set	
			{	
				m_descFlexField = value ;	
			}
		}
			
		

		/// <summary>
		/// 报销部门
		/// 报销单AITDTO.Misc.报销部门
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_reimBurseDept ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ReimBurseDept
		{
			get	
			{	
				return m_reimBurseDept ;
			}
			set	
			{	
				m_reimBurseDept = value ;	
			}
		}
			
		

		/// <summary>
		/// 报销日期
		/// 报销单AITDTO.Misc.报销日期
		/// </summary>
		private System.String m_reimburseDate ;
		[DataMember(IsRequired=false)]
		public System.String ReimburseDate
		{
			get	
			{	
				return m_reimburseDate ;
			}
			set	
			{	
				m_reimburseDate = value ;	
			}
		}
			
		

		/// <summary>
		/// 报销人
		/// 报销单AITDTO.Misc.报销人
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_reimBurseBy ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ReimBurseBy
		{
			get	
			{	
				return m_reimBurseBy ;
			}
			set	
			{	
				m_reimBurseBy = value ;	
			}
		}
			
		

		/// <summary>
		/// 组织
		/// 报销单AITDTO.Misc.组织
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_org ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData Org
		{
			get	
			{	
				return m_org ;
			}
			set	
			{	
				m_org = value ;	
			}
		}
			
		

		/// <summary>
		/// 本币
		/// 报销单AITDTO.Misc.本币
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_fC ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData FC
		{
			get	
			{	
				return m_fC ;
			}
			set	
			{	
				m_fC = value ;	
			}
		}
			
		

		/// <summary>
		/// 用途
		/// 报销单AITDTO.Misc.用途
		/// </summary>
		private System.String m_expenseUse ;
		[DataMember(IsRequired=false)]
		public System.String ExpenseUse
		{
			get	
			{	
				return m_expenseUse ;
			}
			set	
			{	
				m_expenseUse = value ;	
			}
		}
			
		

		/// <summary>
		/// 项目
		/// 报销单AITDTO.Misc.项目
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_expensePayProject ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ExpensePayProject
		{
			get	
			{	
				return m_expensePayProject ;
			}
			set	
			{	
				m_expensePayProject = value ;	
			}
		}
			
		

		/// <summary>
		/// 列支部门
		/// 报销单AITDTO.Misc.列支部门
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_expensePayDept ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ExpensePayDept
		{
			get	
			{	
				return m_expensePayDept ;
			}
			set	
			{	
				m_expensePayDept = value ;	
			}
		}
			
		

		/// <summary>
		/// 列支人员
		/// 报销单AITDTO.Misc.列支人员
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_expensePayBy ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ExpensePayBy
		{
			get	
			{	
				return m_expensePayBy ;
			}
			set	
			{	
				m_expensePayBy = value ;	
			}
		}
			
		

		/// <summary>
		/// 银行卡类型
		/// 报销单AITDTO.Misc.银行卡类型
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_employeeBankCardType ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData EmployeeBankCardType
		{
			get	
			{	
				return m_employeeBankCardType ;
			}
			set	
			{	
				m_employeeBankCardType = value ;	
			}
		}
			
		

		/// <summary>
		/// 员工银行卡号
		/// 报销单AITDTO.Misc.员工银行卡号
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_employeeBankCardNo ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData EmployeeBankCardNo
		{
			get	
			{	
				return m_employeeBankCardNo ;
			}
			set	
			{	
				m_employeeBankCardNo = value ;	
			}
		}
			
		

		/// <summary>
		/// 单据类型
		/// 报销单AITDTO.Misc.单据类型
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_documentType ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData DocumentType
		{
			get	
			{	
				return m_documentType ;
			}
			set	
			{	
				m_documentType = value ;	
			}
		}
			
		

		/// <summary>
		/// 币种
		/// 报销单AITDTO.Misc.币种
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_currency ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData Currency
		{
			get	
			{	
				return m_currency ;
			}
			set	
			{	
				m_currency = value ;	
			}
		}
			
		

		/// <summary>
		/// 单号
		/// 报销单AITDTO.Misc.单号
		/// </summary>
		private System.String m_docNo ;
		[DataMember(IsRequired=false)]
		public System.String DocNo
		{
			get	
			{	
				return m_docNo ;
			}
			set	
			{	
				m_docNo = value ;	
			}
		}
			
		

		/// <summary>
		/// 报销人组织
		/// 报销单AITDTO.Misc.报销人组织
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_reimBurseByOrg ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ReimBurseByOrg
		{
			get	
			{	
				return m_reimBurseByOrg ;
			}
			set	
			{	
				m_reimBurseByOrg = value ;	
			}
		}
			
		

		/// <summary>
		/// 费用列支组织
		/// 报销单AITDTO.Misc.费用列支组织
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_expensePayOrg ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ExpensePayOrg
		{
			get	
			{	
				return m_expensePayOrg ;
			}
			set	
			{	
				m_expensePayOrg = value ;	
			}
		}
			
		

		/// <summary>
		/// 费用核算组织
		/// 报销单AITDTO.Misc.费用核算组织
		/// </summary>
		private ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData m_expensePayAuditOrg ;
		[DataMember(IsRequired=false)]
		public ufida.u9.ait.openapi.CopyOfCommonArchiveDataDTOData ExpensePayAuditOrg
		{
			get	
			{	
				return m_expensePayAuditOrg ;
			}
			set	
			{	
				m_expensePayAuditOrg = value ;	
			}
		}
			
		#endregion	

		#region Multi_Fields
																																								
		#endregion 
	} 	
}
